
class A:
    pass
class B(A):
    """
    可以发现__new__方法是传入类(cls)，而__init__方法传入类的实例化对象(self)，而有意思的是，__new__方法返回的值就是一个实例化对象
    （ps:如果__new__方法返回None，则__init__方法不会被执行，并且返回值只能调用父类中的__new__方法，而不能调用毫无关系的类的__new__方法）
    """
    def __new__(cls):
        print('__new__ called')
        # __init__中的self
        return super().__new__(cls)
    # 整个类的地盘是由__new__函数"开辟出来的"，而到了__init__内部就只能在这片地盘上"修修补补"了
    def __init__(cls):
        print('__init__ called')
    #
b = B()